<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    function request() {
      return new Promise((resolve, reject) => {
        // 发请求异步请求
        setTimeout(() => {
          resolve(3)
        }, 1000)
      })
    }

    function test() {
      const p = request()
      p.then(value => {
        console.log('得到了请求成功的结果数据', value)
      })
    }

    async function test() {
      const value = await request()
      console.log(value)  // 3?
    }

    test()

    /* 
    异步编程方案
    1. 纯回调函数
    2. Promise  ==> 消灭了回调?  并没有
    3. async与await ==> 消灭回调 (以同步编码方式实现异步流程)

    await写在哪?   
        一般写在结果为promise的表达式左侧 
        可以直接得到promise的异步成功的value
    async写在哪?
        写在函数定义的左侧
        await表达式必须写在async函数中
    */

  </script>
</body>
</html>